
[dbo].[amsp_CMGetUniqueSectionName]
CREATE PROCEDURE amsp_CMGetUniqueSectionName
@InNavMenuID numeric = NULL,
@InTitle varchar(255) = NULL,
@OutSectionName varchar(255) OUTPUT
AS
BEGIN
IF @InNavMenuID IS NULL AND @InTitle IS NULL BEGIN
RAISERROR('Either NavMenuID or Title is required as input parameter',16,1)
RETURN
END
DECLARE
@Title varchar(255),
@Name varchar(255),
@RowNum integer,
@Counter integer
IF @InTitle IS NOT NULL
SET @Title = @InTitle
ELSE
SELECT @Title = Title
FROM Nav_Menu
WHERE NavMenuID = @InNavMenuID
SET @Name = REPLACE(@Title, ' ', '_')
SET @Name = REPLACE(@Name, '.', '_')
SET @Name = REPLACE(@Name, '?', '_')
SET @Name = REPLACE(@Name, '\', '_')
SET @Name = REPLACE(@Name, '/', '_')
SET @Name = REPLACE(@Name, '*', '_')
SET @Name = REPLACE(@Name, ':', '_')
SET @Name = REPLACE(@Name, '|', '_')
SET @Name = REPLACE(@Name, '<', '_')
SET @Name = REPLACE(@Name, '&', '_')
SET @Name = REPLACE(@Name, '''', '_')
SET @Name = REPLACE(@Name, '#', '_')
SET @Name = REPLACE(@Name, '>', '_')
SET @Name = REPLACE(@Name, '>', '_')
SET @Name = REPLACE(@Name, '>', '_')
WHILE CHARINDEX('__', @Name) > 0 BEGIN
SET @Name = REPLACE(@Name, '__','_')
END
SET @Name = Left(@Name,100)
SELECT @RowNum = COUNT(*)
FROM Nav_Menu
WHERE UPPER(Name) = UPPER(@Name)
SET @Counter = 0
WHILE @RowNum > 0 BEGIN
SET @Counter = @Counter + 1
SELECT @RowNum = COUNT(*)
FROM Nav_Menu
WHERE UPPER(Name) = UPPER(@Name) + Cast(@Counter as varchar(255))
END
IF @Counter > 0
SET @Name = @Name + Cast(@Counter as varchar(255))
SET @OutSectionName = @Name
END
GO
GRANT EXECUTE ON [dbo].[amsp_CMGetUniqueSectionName] TO [IMIS]
GO